package com.gcb.domain.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.gcb.common.annotation.Excel;
import com.gcb.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.Setter;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.io.Serializable;
import java.util.Date;

/**
 * 企业信息对象 gcb_company
 *
 * @author seh
 * @date 2024-03-08
 */
@Data
@TableName("gcb_company")
public class Company implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 自增id
     */
    private Long id;

    /**
     * 企业编号
     */
    @Excel(name = "企业编号")
    private String companyCode;

    /**
     * 企业真实名称
     */
    @Excel(name = "企业真实名称")
    private String companyName;

    /**
     * 企业名称昵称
     */
    @Excel(name = "企业名称昵称")
    private String companyNickName;

    /**
     * 企业统一社会信用代码
     */
    @Excel(name = "企业统一社会信用代码")
    private String creditCode;

    /**
     * 负责人
     */
    @Excel(name = "负责人")
    private String leader;

    /**
     * 负责人联系电话
     */
    @Excel(name = "负责人联系电话")
    private String leaderPhone;

    /**
     * 超级管理员id
     */
    @Excel(name = "超级管理员id")
    private Long superAdminId;

    /**
     * 所在城市
     */
    @Excel(name = "所在城市")
    private String city;

    /**
     * 城市的中文名称
     */
    @Excel(name = "城市的中文名称")
    private String cityLabel;

    /**
     * 企业启用状态：0-禁用,1-正常
     */
    @Excel(name = "企业启用状态：0-禁用,1-正常")
    private Integer status;

    /**
     * 归属运营商id(sys_dept.id)
     */
    @Excel(name = "归属运营商id(sys_dept.id)")
    private Long operateId;

    /**
     * 营业执照号
     */
    @Excel(name = "营业执照号")
    private String businessLicenseNo;

    /**
     * 营业执照照片
     */
    @Excel(name = "营业执照照片")
    private String businessLicenseImg;

    /**
     * 法人姓名
     */
    @Excel(name = "法人姓名")
    private String corpName;

    /**
     * 法人手机号
     */
    @Excel(name = "法人手机号")
    private String corpMobile;

    /**
     * 法人身份证号
     */
    @Excel(name = "法人身份证号")
    private String corpIdentityCard;

    /**
     * 法人身份证头像面(反面)
     */
    @Excel(name = "法人身份证头像面(反面)")
    private String corpIdentityBack;

    /**
     * 法人身份证国徽面(正面)
     */
    @Excel(name = "法人身份证国徽面(正面)")
    private String corpIdentityFront;

    /**
     * 法人身份证有效开始时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "法人身份证有效开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date corpIdentityStart;

    /**
     * 法人身份证有效结束时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "法人身份证有效结束时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date corpIdentityEnd;

    /**
     * 法人身份证地址
     */
    @Excel(name = "法人身份证地址")
    private String corpIdentityAddress;

    /**
     * 法人身份证发证机关
     */
    @Excel(name = "法人身份证发证机关")
    private String corpIdentityOrg;

    /**
     * 企业认证状态：0-未认证,1-已认证,2-审核中,3-认证失败
     */
    @Excel(name = "企业认证状态：0-未认证,1-已认证,2-审核中,3-认证失败")
    private Integer authStatus;

    /**
     * 企业认证备注
     */
    @Excel(name = "企业认证备注")
    private String authRemark;

    /**
     * 企业首次认证时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "企业首次认证时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date authTime;

    /**
     * 企业认证更新时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "企业认证更新时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date authUpdateTime;

    /**
     * 水路运输许可证号
     */
    @Excel(name = "水路运输许可证号")
    private String waterTransportNo;

    /**
     * 水路运输许可证照片
     */
    @Excel(name = "水路运输许可证照片")
    private String waterTransportImg;

    /**
     * 船运资质认证状态：0-未认证,1-已认证,2-审核中,3-认证失败
     */
    @Excel(name = "船运资质认证状态：0-未认证,1-已认证,2-审核中,3-认证失败")
    private Integer waterStatus;

    /**
     * 企业首次认证时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "企业首次认证时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date waterAuthTime;

    /**
     * 企业认证更新时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "企业认证更新时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date waterAuthUpdateTime;

    /**
     * 注册类型 1-运营创建
     */
    @Excel(name = "创建方式", readConverterExp = "0=运营创建")
    private Integer signType;

    /**
     * logo
     */
    private String logo;

    /**
     * 超管账号
     */
    @TableField(exist = false)
    private String companyAdminPhone;

    private Long createBy;

    private Date createTime;

    private Long updateBy;

    private Date updateTime;
}
